SMODS.Joker#
Class prefix: j
Required parameters:
key,loc_txtor localization entry (reference)
Optional parameters (defaults):
atlas = 'Joker', pos = { x = 0, y = 0 }, soul_pos, soul_atlas(reference)config = {}, unlocked = true, discovered = false, no_collection, prefix_config, dependencies, display_size, pixel_size, badge_colour, badge_text_colour, no_mod_badges(reference)rarity = 1The base game rarities are
"Common","Uncommon","Rare"or"Legendary", or the numbers1= Common,2= Uncommon,3= Rare,4= Legendary.Modded rarities are specified using their key (including your mod prefix)
attributes: (Added in 1531zeebee) Array of Attributes this joker has (reference)pools: List of keys to ObjectTypes this center should be injected intoExpects a list of keys like this:
{ ["Foo"] = true, ["Bar"] = true, }
cost = 3,blueprint_compat = true- IffalseBlueprint effects won’t copy this Joker,eternal_compat = true,perishable_compat = true,<sticker>_compatfor any modded stickers
API methods#
calculate(self, card, context)(reference)loc_vars, locked_loc_vars, generate_ui(reference)calc_dollar_bonus(self, card) -> number, tableFor awarding money at the end of the round (e.g. Delayed Gratification, Cloud Nine)
(Added in 1531zeebee) Optionally, you can return a table as the second value to modify the text in the round evaluation screen with any of the following arguments:
text: Replaces the default name text.key,set: Allows changing the key and/or set of the name in the localization (ignored iftextis set)vars: (Added in 1814a) Replaces the variables (e.g.#1#) in names sourced from the localization.text_colour,scale: Allows changing the colour and scale of the text respectively
calc_scaling(self, card, other_card, initial_value, scalar_value, args) -> table(reference)Called by
SMODS.scale_card. Allows detection and modification of cards when scaling values.
set_ability(self, card, initial, delay_sprites)Set up initial ability values or manipulate sprites in an advanced way.
add_to_deck(self, card, from_debuff)Modify the game state when this card is obtained.
Cards are considered added when they become undebuffed (in this case,
from_debuffwill be true).
remove_from_deck(self, card, from_debuff)Modify the game state when this card is sold, destroyed, or otherwise removed.
Cards are considered removed when debuffed (in this case,
from_debuffwill be true).
in_pool(self, args) -> bool, { allow_duplicates = bool }Define custom logic for when a card is allowed to spawn. A card can spawn if
in_poolreturns true and all other checks are met.allow_duplicatesallows this card to spawn when one already exists, even without Showman.When called from
get_current_pool, the_appendkey is passed asargs.source.
can_sell(self, card, context) -> boolean?(Added in 1814a)
Define additional custom logic for when your card is allowed to be sold. By default, the card is usually prevented from being sold during scoring or if it is eternal. If defined, can_sell is then also checked afterwards and if it returns false, the card can’t be sold.
contextis not a calculation context and is not provided by default, but could be present if you need to perform your own custom checks on whether cards can be sold.
on_select(self, card)Called when the joker is selected from a booster pack to be added to the joker slots. Currently only when using
select_card.
update(self, card, dt)For actions that happen every frame.
set_sprites(self, card, front)For advanced sprite manipulation that happens when a card is created or loaded.
load(self, card, card_table, other_card)For modifications to sprites or the card itself when a run is reloaded.
check_for_unlock(self, args) -> boolConfigure unlock conditions. Refer to the function
check_for_unlockin Balatro’s code for more information.
set_badges(self, card, badges)Add additional badges, leaving existing badges intact. This function doesn’t return; add badges by appending to
badges.Avoid overwriting existing elements. It will cause text to appear on the top left corner of your screen instead.
Function for creating badges:
create_badge(_string, _badge_col, _text_col, scaling)_string: Text displayed on the badge._badge_col = G.C.GREEN: Background colour._text_col = G.C.WHITE: Text colour._scaling = 1: Relative size of the badge.
Example:
{
set_badges = function(self, card, badges)
badges[#badges+1] = create_badge(localize('k_your_string'), G.C.RED, G.C.BLACK, 1.2 )
end,
}
set_card_type_badge(self, card, badges)Same as
set_badges, but bypasses creation of the card type / rarity badge, allowing you to replace it with a custom one.
draw(self, card, layer)Draws the sprite and shader of the card.